home *** CD-ROM | disk | FTP | other *** search
/ Aminet 5 / Aminet 5 - March 1995.iso / Aminet / util / misc / spectral.lha / ReadMe next >
PGP Signed Message  |  1994-11-07  |  5KB  |  116 lines

  1. -----BEGIN PGP SIGNED MESSAGE-----
  2.  
  3.                      THE FASTEST SPECTRAL ANALYZER
  4.                          by Kim Øyhus (c)1994
  5.              
  6. Have you ever wanted to see the structure of sound? Then run this program!
  7.  
  8. You need an amiga with 68000 or 68020 processor, and a paralell port sampler.
  9. The sound is analyzed, and split into 250 separate tones/pitches. (in PAL TV)
  10. The lower tones/pitches are lower on the screen, while higher pitches are
  11. higher on the screen. Each whitish line marks 1000Hz. The longer each red 
  12. line is, the louder is that tone/pitch.
  13.  
  14. Sample speed:            15625 Hz
  15. Frequeny range:           7780 Hz
  16. Bands:                     250
  17. Band distance:              62 Hz
  18. Bandwidth:                 124 Hz
  19. Dynamic range:              48 dB
  20. Dynamic resolution:          6 dB/16pixels
  21. Refresh rate:               10 Hz (On 8MHz 68000 CPU, A1000 !)
  22. Speed of Fourier transform: 20 transforms/sec, or 10000 samples/sec. (!)
  23. Length of Fourier transform: 504
  24. Windowing: Hanning.
  25.  
  26. The frequency scale is linear, from 0-7.8 KHz, while the loudness scale
  27. is logarithmic, with a range of 48 dB, on 256 pixels.
  28.  
  29. To freeze the spectrum, hold the mouse button down.
  30. To dump spectrum to standard out, make a short click with mouse button.
  31. F.ex. write "Spectral >OutData" to get the data into a file.
  32.  
  33. If you have got the free demonstration version, a band of frequencies will
  34. be missing, and the freeze and dump abilities will be removed.
  35. To get the complete working version, send USD 30, 200 KR, or 20 lb, as
  36. postal order, international cheque, or cash, through the mail, to:
  37.  
  38. Kim Øyhus
  39. Nedre Bjertnes 16
  40. 1482 Nittedal
  41. NORWAY                           kim@pvv.unit.no
  42.  
  43. PS: If you dont have an AudioMaster compatible sampler, i.e. UBYTE, unsigned
  44. char, but instead another, i.e. BYTE, signed char, then tell so when ordering.
  45.  
  46.  
  47. ABOUT THE PROGRAM
  48.  
  49. I feel I can safely say that this program is the fastest spectral analyzer
  50. program ever to be made on the Amigas above. How can I be so sure?
  51. Well, I have used the fastest methods I could get, in all the code.
  52.  
  53. The heart of the spectral analyzer is the Fourier transform, which splits
  54. the sample into different frequencies. I use a Large Winograd transform,
  55. which is modified to work on real numbers, since this takes just half the
  56. time compared to transforming complex numbers. All the arithmetic is scaled
  57. to fit within the 16bit memory 32bit register structure of the Amiga.
  58. (Least common attributes) The algorithm is able to transform by using just 1.6
  59. multplications per sample, while conventional algorithms may use 28, or
  60. 21 if it is well made. The Hanning windowing is done with just 2 additions.
  61.  
  62. In order to sample precisely, i.e. no jitter, I synchronize the sampling
  63. with the screen line rate, at 64us, 15625Hz. To synchronize, I use the
  64. copper to generate interrupts level 6, while the processor is in interrupt
  65. level 5, doing a STOP instruction, and therefore jumps immediately to the
  66. level 6 interrupt server, which immediately sample a value, and returns. 
  67. This method keeps the jitter under 0.3us, which is sufficient for 8 bits 
  68. sampling.
  69.  
  70. In addition, short pieces of code are run between each sample. The program
  71. samples while at the same time doing windowing, power calculation, logarithms,
  72. and drawing. The logarithms are of course done with a 64KB signed table
  73. index. Drawing lines on screen would have taken far too long time. The
  74. lines are done by letting the copper generate a new screen pointer for
  75. each line, and have them point to pre-drawn lines.
  76.  
  77. Unfortunately may 68030 and higher processors cause trouble, since they
  78. have different interrupt vector structure. I  have also not tested this
  79. program in NTSC TV.
  80.  
  81.  
  82. This spectral analyzer is my farewell to the Amiga. My A1000 was one of
  83. the 5 first Amigas to get into Norway in 1984, and I am still using it now.
  84. The program was written in Lattice C and assembler, and took many years to
  85. write. It really is state of the art. It was barely possible to make it.
  86.  
  87. In a couple of days, I will get my new computer, a RISC PC from Acorn.
  88. The only computer worthwile as a replacement for an Amiga.  1994.11.25
  89. The spectral analyzer is already translated to it.
  90.  
  91. Kim0
  92.  
  93.  
  94. - -----BEGIN PGP PUBLIC KEY BLOCK-----
  95. Version: 2.3a.2
  96.  
  97. mQCNAi1+/aoAAAEEAKo+n2YBw8FmVk3wHeibgSaUQwpDqkwffk9uLKawq1GBM+8R
  98. poUWfn3BKAszz6hMctbCeaKvyNN97XTbdvrDbomthO2jzH/t0Q7/2d6mOgSFm6lX
  99. W0s6LYUcw9QCSHzzdTCDAPNVrBb0uUbGbkHEac498j36DJ8Cp2Ha3T3HkBnlAAUR
  100. tBxLaW0gT0V5aHVzIDxraW1AcHZ2LnVuaXQubm8+iQBVAgUQLX8Dvg4AjWeDsA7P
  101. AQETqAH+OhShI9WDGYoFrLJ+vjXFxbEvjtij0HoXTLIbHt3btw7er5Ocbo/FcikV
  102. rtddMmPs/k+DqwM77EsRVryKL0kXNw==
  103. =K++e
  104. - -----END PGP PUBLIC KEY BLOCK-----
  105.  
  106.  
  107. -----BEGIN PGP SIGNATURE-----
  108. Version: 2.3a.2
  109.  
  110. iQCVAgUBLr8I92Ha3T3HkBnlAQHnMAP/SsgdUmGyljMabKWD+PtO79l/1eN7dN7V
  111. 5mH5NBi9PHk64ZsNmsLQAWFku2n3AFk2ea0KGJ+2BIMx1Lq4EDi+YdeGMW6eFSVB
  112. O7uEf36WULVfRVAMpYYmfSRhhh1/QOXobqbTDmhjR07STavE+AC7ySL9wlhZqx0G
  113. LPkr7P/ixZA=
  114. =PWOR
  115. -----END PGP SIGNATURE-----
  116.